package cn.tedu.micro.demo.all.controller;

import cn.tedu.micro.demo.all.service.CartService;
import cn.tedu.micro.demo.common.pojo.vo.CartVO;
import cn.tedu.micro.demo.common.protocol.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 专门负责 购物车相关业务模块接口
 */
@RestController
public class CartController {
    @Autowired
    private CartService cartService;

    @PostMapping("/cart/add")
    public JsonResult<Boolean> saveCart(
            Integer userId,
            String productCode,
            Integer count){
        //demo案例 轻业务 重技术 所以业务逻辑很简陋
        cartService.saveCart(userId,productCode,count);
        return JsonResult.ok("ok",true);
    }
    @GetMapping("/cart/list")
    public JsonResult<List<CartVO>> listMyCart(Integer userId){
        //查询的数据 封装list一定来自于业务层
        //规范: 读取数据的时候 控制层要什么 业务层返回什么
        List<CartVO> carts=cartService.listMyCart(userId);
        return JsonResult.ok("ok",carts);
    }
    @PostMapping("/cart/delete")
    public JsonResult<Void> deleteCart(
            @RequestParam("productCode")String productCode,
            @RequestParam("userId")String userId){
        cartService.deleteCart(productCode,userId);
        return JsonResult.ok("ok",null);
    }
}
